package com.hex.ds.hdtp.core.app.script.transfer.service;

import com.hex.ds.hdtp.core.app.common.page.PageData;
import com.hex.ds.hdtp.core.app.common.page.dto.PageDto;
import com.hex.ds.hdtp.core.app.common.service.IBasicService;
import com.hex.ds.hdtp.core.app.script.transfer.dto.request.ScriptConvertSourceListRequestDto;
import com.hex.ds.hdtp.core.app.script.transfer.dto.response.ScriptConvertSourceListResponseDto;

import java.io.IOException;
import java.util.List;

/**
 * @Package: com.hex.ds.hdtp.core.app.transfer.script.service
 * @ClassName IScriptConvertListService
 * @Description: 脚本转换清单-业务服务接口
 * @Author: wz.li
 * @Date 2023/2/12 10:42
 * @Version v2.0.2
 **/
public interface IScriptConvertSourceListService extends IBasicService<ScriptConvertSourceListRequestDto> {

    /*
     * @Method: queryListByPageAndSourceFileName <br>
     * @Param: [sourceFileName, pageDto] <br>
     * @Return: com.hex.ds.hdtp.core.app.common.page.PageData <br>
     * @Description：分页查询指定文件的转换历史<br>
     * @Author： wz.li<br>
     * @Date： 2023/5/25 17:38 <br>
     * @Version： V2.0.2<br>
     */
    PageData queryListByPageAndSourceFileName(String pkId, String sourceFileName, PageDto pageDto);

    /*
     * @Method: removeByTaskId <br>
     * @Param: [convertTaskPkId] <br>
     * @Return: void <br>
     * @Description： 根据转换任务主键删除<br>
     * @Author： wz.li<br>
     * @Date： 2023/2/12 10:44 <br>
     * @Version： V2.0.2<br>
     */
    void removeByTaskId(String convertTaskPkId);

    /*
     * @Method: queryById <br>
     * @Param: [pkId] <br>
     * @Return: com.hex.ds.hdtp.core.app.script.transfer.dto.response.ScriptConvertListResponseDto <br>
     * @Description：获取指定主键的脚本专家清单<br>
     * @Author： wz.li<br>
     * @Date： 2023/2/12 18:37 <br>
     * @Version： V2.0.2<br>
     */
    ScriptConvertSourceListResponseDto queryById(String pkId);

    /*
     * @Method: queryConvertHistoryCompareContent <br>
     * @Param: [crunPkId, histPkId] <br>
     * @Return: com.hex.ds.hdtp.core.app.script.transfer.dto.response.ScriptConvertSourceListResponseDto <br>
     * @Description：获取指定记录与当前最新记录源文件内容<br>
     * @Author： wz.li<br>
     * @Date： 2023/8/16 16:40 <br>
     * @Version： V2.0.2<br>
     */
    ScriptConvertSourceListResponseDto queryConvertHistoryCompareContent(String crunPkId, String histPkId);

    /*
     * @Method: queryByTaskId <br>
     * @Param: [convertTaskPkId] <br>
     * @Return: java.util.List<com.hex.ds.hdtp.core.app.script.transfer.dto.response.ScriptConvertListResponseDto> <br>
     * @Description：根据指定的转换任务主键查询转换清单<br>
     * @Author： wz.li<br>
     * @Date： 2023/2/13 11:15 <br>
     * @Version： V2.0.2<br>
     */
    List<ScriptConvertSourceListResponseDto> queryByTaskId(String convertTaskPkId);

    /*
     * @Method: modifyByTaskId <br>
     * @Param: [scriptConvertListRequestDto] <br>
     * @Return: java.lang.Integer <br>
     * @Description：根据转换任务主键更新转换清单<br>
     * @Author： wz.li<br>
     * @Date： 2023/2/13 16:07 <br>
     * @Version： V2.0.2<br>
     */
    Integer modifyByTaskId(ScriptConvertSourceListRequestDto scriptConvertSourceListRequestDto);

    /*
     * @Method: queryByTaskId <br>
     * @Param: [convertTaskPkId, status] <br>
     * @Return: java.util.List<com.hex.ds.hdtp.core.app.script.transfer.dto.response.ScriptConvertListResponseDto> <br>
     * @Description：获取指定任务指定状态转换清单<br>
     * @Author： wz.li<br>
     * @Date： 2023/2/15 14:51 <br>
     * @Version： V2.0.2<br>
     */
    List<ScriptConvertSourceListResponseDto> queryByTaskId(String convertTaskPkId, String status);

    /**
     * @Method downloadFile
     * @Param [pkId]
     * @Return java.lang.String
     * @Description 已转换脚本页面通过pkIds下载源文件和转换后文件
     * @Author Guo jiajun
     * @Date 2023/5/11 14:47
     * @Version V1.0
     */
    String downloadFile(ScriptConvertSourceListRequestDto scriptConvertSourceListRequestDto);

}
